home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / util / ffi / ffi.pyo (.txt) < prev   
Python Compiled Bytecode  |  2008-10-13  |  3KB  |  59 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import ctypes
  5. import sys
  6. from ctypes import Structure, byref, sizeof
  7. __all__ = [
  8.     'Struct',
  9.     'cimport']
  10.  
  11. class Struct(Structure):
  12.     
  13.     def __init__(self, *a, **k):
  14.         cls = type(self)
  15.         fields = getattr(cls, '_fields_', None)
  16.         if fields is None:
  17.             raise AssertionError('ctypes.Structure must have _fields_')
  18.         
  19.         a = a + (0,) * (len(fields) - len(a))
  20.         for name, native_type in enumerate(fields):
  21.             setattr(self, name, k.pop(name, a[i]))
  22.         
  23.         if k:
  24.             raise ValueError('not defined in _fields_: %s' % ', '.join(k))
  25.         
  26.  
  27.     
  28.     def __repr__(self):
  29.         vals = (' '.join,)((lambda .0: for name, t in .0:
  30. '%s=%s' % (name, getattr(self, name)))(self._fields_))
  31.         return '<%s %s>' % (type(self).__name__, vals)
  32.  
  33.     
  34.     def ptr(self):
  35.         return byref(self)
  36.  
  37.     ptr = property(ptr)
  38.     
  39.     def __len__(self):
  40.         return sum((lambda .0: for name, t in .0:
  41. sizeof(t))(self._fields_))
  42.  
  43.  
  44. import os
  45.  
  46. def cimport(**k):
  47.     if os.name == 'nt':
  48.         platform_dlls = ctypes.windll
  49.         G = sys._getframe(1).f_globals
  50.         for name, funcs in k.iteritems():
  51.             dll = getattr(platform_dlls, name)
  52.             (G.update,)((lambda .0: for func in .0:
  53. (func, getattr(dll, func)))(funcs))
  54.         
  55.     else:
  56.         import gui.native as gui
  57.         gui.native.notImplemented()
  58.  
  59.